const { DataTypes } = require('sequelize')
const seq = require('../db/seq')

const Activity = seq.define('zhku_activities', {
    act_id: {
        type: DataTypes.UUID,
        defaultValue: DataTypes.UUIDV4,
        comment: '活动编号（唯一）'
    },
    act_title: {
        type: DataTypes.STRING,
        allowNull: false,
        comment: '活动标题'
    },
    act_content: {
        type: DataTypes.STRING(800),
        allowNull: false,
        comment: '活动内容'
    },
    act_type: {
        type: DataTypes.INTEGER,
        allowNull: false,
        comment: '活动类型: 0活动 1比赛'
    },
    organizer_account: {
        type: DataTypes.STRING,
        allowNull: false,
        comment: '活动举办人（举办方）'
    },
    teacher_account: {
        type: DataTypes.STRING,
        allowNull: false,
        comment: '指导老师（活动审批人）'
    },
    apply_desc: {
        type: DataTypes.STRING,
        allowNull: true,
        comment: '申请备注'
    },
    approval_desc: {
        type: DataTypes.STRING,
        allowNull: true,
        comment: '审批备注'
    },
    start_time: {
        type: DataTypes.DATE,
        allowNull: false,
        comment: '活动开始时间'
    },
    end_time: {
        type: DataTypes.DATE,
        allowNull: false,
        comment: '活动结束时间'
    },
    approval_status: {
        type: DataTypes.INTEGER,
        allowNull: false,
        defaultValue: 0,
        comment: '活动是否审批（0未审批，1审批通过，2审批驳回）'
    },
    score_approval_status: {
        type: DataTypes.INTEGER,
        allowNull: false,
        defaultValue: 0,
        comment: '加分是否审批（0未审批，1审批通过，2审批驳回）'
    },
    sign_type: {
        type: DataTypes.INTEGER,
        allowNull: false,
        defaultValue: 0,
        comment: '签到类型（0扫码，1定位，2提交文件（比赛只能用2））'
    }
}, {
    tableName: 'zhku_activities', // 表名
    timestamps: true, // 是否创建时间戳列
    freezeTableName: true // 强制表名等于模型名
})

// 如果数据库不存在该表，则自动创建
// Activity.sync()

module.exports = Activity